# -*-coding:utf-8 -*-
from django.shortcuts import render,redirect
#导包
from django.http import HttpResponse,HttpResponseRedirect,JsonResponse
#导入类视图
from django.views import View

#from myapp.models import User
import json
from django.core.serializers import serialize
from rest_framework.response import Response
from rest_framework.views import APIView
#导入加密库
import hashlib
#导入图片库
#绘画库
from PIL import ImageDraw
#字体库
from PIL import ImageFont
#图片库
from PIL import Image
#随机库
import random
#文件流
import io

import requests

#导入上传文件夹配置
from mydjango.settings import UPLOAD_ROOT
import os

#导入原生sql模块
from django.db import connection

import jwt

#导入redis数据库
import redis

#导入时间模块
import time

#导入公共目录变量
from mydjango.settings import BASE_DIR

#导包
from django.db.models import Q,F
 
#导入dwebsocket的库
from dwebsocket.decorators import accept_websocket
import uuid
from myapp.myser import UserSer,PicsSer


from myapp.models import *

#定义 Redis 
host = '127.0.0.1'
port =6379
#建立redis连接
r = redis.Redis(host=host,port=port) 

#幻灯片接口
class PicsList(APIView):
    def get(self,request):

        #查询数据  value 可以改成 defer （排除）
        pics = Pics.objects.filter().values("title","link","img")
        #序列化对象
        pics_ser = PicsSer(pics,many=True)
        return Response(pics_ser.data)



#插入幻灯片
class InsertPics(APIView):
    def get(self,request):

        #接受参数
        title = request.GET.get('title','null')
        link = request.GET.get('link','null')
        img = request.GET.get('img','null')



        #排重 （不能重复）
        pics = Pics.objects.filter(title=title).first()

        if pics:
            res = {}
            res['code'] = 405
            res['message'] = "该活动已存在"
            return Response(res)

        #入库
        pic = Pics(title=title,link=link,img=img)
        pic.save()

        res = {}
        res['code'] = 200 
        res['message'] = "恭喜，添加成功"

        return Response(res)

# 展示幻灯片
class ShowPics(APIView):
    def get(self, request):
        pics = Pics.objects.all()
        if pics:
            pics_ser = PicsSer(pics, many=True).data
            return Response(pics_ser)
        else:
            res = {}
            res['code'] = 405
            res['msg'] = '未添加幻灯片'
            return Response(res)

    # 删除幻灯片
    def delete(self, request):
        # 接收参数
        pid = request.data.get('pid')

        # 查找幻灯片
        pic = Pics.objects.get(id=pid).delete()
        res = {}
        res['code'] = 200
        res['msg'] = '删除成功'
        return Response(res)

    # 修改幻灯片
    def options(self, request):
        # 接收参数
        title = request.data.get('title')
        link = request.data.get('link')
        img = request.data.get('img')
        pid = request.data.get('pid')

        # 查找幻灯片
        pic = Pics.objects.get(id=pid)
        pic.title = title
        pic.link = link
        pic.image = img
        pic.save()

        res = {}
        res['code'] = 200
        res['msg'] = '修改成功'
        return Response(res)